package cn.dengta.webapp.user.form.query;

import cn.dengta.common.model.Bean;
import cn.dengta.common.model.VerifyStatus;
import cn.dengta.context.model.Member;
import cn.dengta.context.model.WesKit;
import cn.dengta.context.web.RequestContextImpl;
import cn.dengta.webapp.base.form.BaseForm;
import cn.dengta.webapp.base.form.QueryBaseForm;
import cn.dengta.webapp.user.entity.Photo;
import cn.dengta.webapp.user.entity.Photo.BizType;
import lombok.*;

@Getter
@Setter
public class PhotoQuery extends QueryBaseForm<Photo> {

	/** ID */
	public Long id;
	/** 用户ID */
	public Long userId;
	/** 用户昵称 */
	public String userNickname;
	/** 类型 0-图片 1-视频 */
	public BizType type;
	/** 是否封面 */
	public Integer isCover;
	/** step -1=审核不通过，0=待审核，1=审核通过，2=申请以及通过 【使用VerifyStatus做载体】 */
	@Setter(AccessLevel.NONE)
	public VerifyStatus step;
	/** 分包 */
	public WesKit wesKit;

	public transient boolean isSelf;

	@Override
	public void preHandle() {
		// userId 赋值获取他人相册 【默认获取登录用户】
		// 查询自己相册过滤条件，他人相册无需传参 step： -1=审核不通过，0=待审核，1=审核通过{他人相册【默认】}，2=申请以及通过{登录用户【默认】}
		super.preHandle();
		final Member sessionUser = RequestContextImpl.get().sessionUser();
		isSelf = userId == null;
		if (isSelf) {
			userId = Bean.idOf(sessionUser);
		}
		if (type == null) {
			type = BizType.PHOTO;
		}
		step = isSelf ? VerifyStatus.REVIEW_TRUE : VerifyStatus.VERIFY_TRUE;
	}

	public void setStep(Integer step) {
		this.step = VerifyStatus.of(step);
	}

	public void setType(Integer type) {
		this.type = BizType.of(type);
	}

}
